// 控制器是通过class来实现的
// 但并不是随便一个 class 就能成为控制器
// 类似继承的概念，koa-controllers 为我们提供了一个装饰器：Controller
// 通过此装饰器我们可以把一个普通类变成具有控制器特征的控制器类
import {Controller,Get,Ctx,Post} from "koa-controllers";
import {Context} from "koa";
// import db from "../models";
import {Model} from "sequelize";

@Controller
export class AdminCategoryController {
    @Get("/admin/category")
    public async index(@Ctx ctx: Context) {
        let categoryModel: Model<any, any> = ctx.state.db['category'];
        let categories = await categoryModel.findAll();
        ctx.body = categories;
    }

    @Post("/admin/category/add")
    public async add(@Ctx ctx: Context) {
        // console.log(ctx.request.body);
        let pid = ctx.request.body.pid || 0;
        let name = ctx.request.body.name || '';        

        if (name == '') {
            ctx.body = {
                code: 1,
                message: '分类不能为空'
            }
            return;
        }

        let categoryModel: Model<any, any> = ctx.state.db["category"];
        let category = categoryModel.build({
            name,
            pid
        });
        await category.save();

        ctx.body = {
            code: 0,
            data: category
        }
    }

}